#ifndef MATERIAL_H
#define MATERIAL_H

#include <GL/gl.h>

#include "src/scene/color.h"
#include "src/scene/texture.h"
#include "src/scene/bumpMapping.h"

struct Material{
	public:
		Material();
		Material(double, double, double, double, double, double, double, double, double, Texture * = NULL, BumpMapping * = NULL);
		Material(const Color &, const Color &, const Color &, double, double, double, double, double, double, Texture * = NULL, BumpMapping * = NULL);
		~Material();

		GLfloat *getAmbientGL(GLfloat *) const;
		GLfloat *getDiffuseGL(GLfloat *) const;
		GLfloat *getSpecularGL(GLfloat *) const;

		bool useTexture() const {if(texture) return true; return false;};
		bool useBumpMapping() const {if(bumpMapping) return true; return false;};

		Color ambient, diffuse, specular;
		double specularPower, ka, kd, ks, kt;
		double refractiveIndex;
		Texture *texture;
		BumpMapping *bumpMapping;
};

#endif
